package educar.controllers;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import educar.gui.AdministradorView;
import educar.models.Alumno;
import educar.models.userNotFound;

public class AlumnoController implements ActionListener {
  private AdministradorView view;
  String nombreAlumno;
  String apellidoAlumno;
  String dni;
  String direccionAlumno;
  int dniEntero;
	
  public AlumnoController(AdministradorView view) {
    this.view=view;
  }
	
  public void actionPerformed(ActionEvent evento){
    nombreAlumno="";
	direccionAlumno="";
	dni="";
	apellidoAlumno="";
	nombreAlumno=view.getNombreAlumno();
	direccionAlumno=view.getDireccionAlumno();
	dni=view.getDniAlumno();
	apellidoAlumno=view.getApellidoAlumno();
	if(evento.getActionCommand().equals("Cargar")){
	  try {
	    dniEntero=Integer.parseInt(dni.trim());
	  } 
	  catch (Exception e) {
	    JOptionPane.showMessageDialog(null, "Dni incorrecto");
	    view.resetCamposAlumno();}
		if(nombreAlumno.equals("")||direccionAlumno.equals("")||(apellidoAlumno.equals(""))||(dni.equals("")))
		  JOptionPane.showMessageDialog(null, "Error en el ingreso de datos");
		else 
		  try{
		    Alumno.getAlumnoByDNI(dni);
			JOptionPane.showMessageDialog(null, "Ya existe un alumno con ese DNI, intente otro");
		  } 
		  catch(userNotFound e) {
		    Alumno student = new Alumno(dniEntero,dniEntero,nombreAlumno,apellidoAlumno,direccionAlumno);
			if(student.save())
			  JOptionPane.showMessageDialog(null, "Alumno insertado con exito");
			else
			  JOptionPane.showMessageDialog(null, "Alumno no insertado");
			  view.resetCamposAlumno();
		    }
		  }
		  else {
		    if(evento.getActionCommand().equals("Eliminar")){
			  try {
			    dniEntero=Integer.parseInt(dni.trim());
			  }
			  catch (Exception e){
			    JOptionPane.showMessageDialog(null,"Dni incorrecto");
				view.resetCamposAlumno();}
				try {
				  Alumno.getAlumnoByDNI(dni);
				  Alumno.destroy("alumno","dni",dni); 
				  view.resetCamposAlumno();
				  JOptionPane.showMessageDialog(null,"Alumno eliminado con exito");
				} 
				catch(userNotFound e) {
				  JOptionPane.showMessageDialog(null,"No existe ningun alumno con ese DNI");
				}
			   }
			   else {
				 if(evento.getActionCommand().equals("Modificar")){
				  try {
					dniEntero=Integer.parseInt(dni.trim());
					Alumno student = Alumno.getAlumnoByDNI(dni);
					view.setCamposAlumno(student.getNombre(),student.getApellido(),student.getDireccion(),Integer.toString(student.getDni()));
					view.setBotonAlumnoOK(true);
				  }
				  catch(userNotFound e) {
					  JOptionPane.showMessageDialog(null,"No existe ningun alumno con ese DNI");
				  }
				  catch (Exception e){
					  JOptionPane.showMessageDialog(null,"Dni incorrecto");
					  view.resetCamposAlumno();}
				  }
				else {
				  if(evento.getActionCommand().equals("OK")){
				    if(nombreAlumno.equals("")||(apellidoAlumno.equals(""))||(dni.equals(""))){
					  view.resetCamposAlumno();
					} 
				    else {
					  try {
						Alumno student = Alumno.getAlumnoByDNI(dni);
						student.modificar(view.getDireccionAlumno());
						JOptionPane.showMessageDialog(null,"Alumno modificado con exito");
						view.resetCamposAlumno();
					  } 
					  catch(userNotFound e) {
					    JOptionPane.showMessageDialog(null,"No existe ningun alumno con ese DNI");
					  }
			      }
						view.setBotonAlumnoOK(false);
			   }
			} 
		}
	}
  }
}	
	
	